package com.ruoyi.water.domain;

import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;

/**
 * 区域管理对象 t_area
 *
 * @author wujiong
 * @date 2025-08-24
 */
@Data
@TableName("t_area")
public class Area {

    /** 水表的区域id和他自身一样，大区域的id为502及之后的值 */
    @Excel(name = "区域ID")
    @TableId(type = IdType.AUTO)
    @TableField("id")
    private Long id;

    /** 父区域ID */
    @Excel(name = "父区域ID", readConverterExp = "父区域ID转换表达式")
    @TableField("parentAreaId")
    private Long parentAreaId;

    /** 分区编码 */
    @Excel(name = "分区编码")
    @TableField("areaCode")
    private String areaCode;

    /** 分区名称 */
    @Excel(name = "分区名称")
    @TableField("areaName")
    private String areaName;

    /** 分区的属于哪个层级 */
    @Excel(name = "分区层级")
    @TableField("areaLevel")
    private Long areaLevel;

    /** 分区多边形的点坐标，json格式 */
    @Excel(name = "分区多边形坐标")
    @TableField("areaGeo")
    private String areaGeo;

    /** 线宽 */
    @Excel(name = "线宽")
    @TableField("lineWidth")
    private Long lineWidth;

    /** 这个Area属于哪个zone？ 一个zone表示一个校区，一个Area表示一个或多个水表覆盖区域 */
    @Excel(name = "所属校区ID")
    @TableField("zoneId")
    private Long zoneId;

    /** 区域预估用水量，区域水平衡时，进水=预估用水+出水 */
    @Excel(name = "区域预估用水量")
    @TableField("waterValue")
    private Long waterValue;

    /** 分区平衡1级告警 */
    @Excel(name = "分区平衡1级告警")
    @TableField("firstWarn")
    private Long firstWarn;

    /** 分区平衡2级告警 */
    @Excel(name = "分区平衡2级告警")
    @TableField("secondWarn")
    private Long secondWarn;

    /** 分区平衡3级告警 */
    @Excel(name = "分区平衡3级告警")
    @TableField("thirdWarn")
    private Long thirdWarn;

    /** 分区状态，默认为true */
    @Excel(name = "分区状态")
    @TableField("areaStatus")
    private Integer areaStatus;

    /** 记录时间 */
    @Excel(name = "记录时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("recordTime")
    private Date recordTime;

    /** 备注 */
    @Excel(name = "备注")
    @TableField("remark")
    private String remark;
}